/*
 ============================================================================
 Name		: EasyBounceAppUi.h
 Author	  : 
 Copyright   : Zhao Xizhe, Si Wei, Song Yupeng
 Description : Declares UI class for application.
 ============================================================================
 */

#ifndef __EASYBOUNCEAPPUI_h__
#define __EASYBOUNCEAPPUI_h__

// INCLUDES
#include <eikapp.h>
#include <eikdoc.h>
#include <e32std.h>
#include <coeccntx.h>
#include <aknviewappui.h>
#include <EasyBounce.hrh>

// CLASS DECLARATION
/**
 * CEasyBounceAppUi application UI class.
 * Interacts with the user through the UI and request message processing
 * from the handler class
 */
class CEasyBounceAppUi : public CAknViewAppUi
	{
public:
	// Constructors and destructor

	/**
	 * ConstructL.
	 * 2nd phase constructor.
	 */
	void ConstructL();

	/**
	 * CEasyBounceAppUi.
	 * C++ default constructor. This needs to be public due to
	 * the way the framework constructs the AppUi
	 */
	CEasyBounceAppUi();

	/**
	 * ~CEasyBounceAppUi.
	 * Virtual Destructor.
	 */
	virtual ~CEasyBounceAppUi();
	
public:
	//New functions
	/**
	 * Provide info dialog for views
	 */
	void ShowMessage(const TDesC& aMessage, TMessageType aMsgType);
	
	/**
	 * Provide query dialog for views
	 */
	TBool ShowQueryDialog(const TDesC& aMessage);

private:
	// Functions from base classes

	/**
	 * From CEikAppUi, HandleCommandL.
	 * Takes care of command handling.
	 * @param aCommand Command to be handled.
	 */
	void HandleCommandL(TInt aCommand);

	/**
	 *  HandleStatusPaneSizeChange.
	 *  Called by the framework when the application status pane
	 *  size is changed.
	 */
	void HandleStatusPaneSizeChange();

private:
	// Data

	};

#endif // __EASYBOUNCEAPPUI_h__
// End of File
